The present invention relates to a bar code symbology which presents data in a two dimensional (2D) grid pattern or matrix, and is directed more particularly to a 2D matrix symbology in which data blocks are concatenated in a sequentially readable spiral-like pattern having a beginning and end which can be identified quickly and uniquely with respect to a centrally located finder pattern.
Bar code symbols have become a widely used way of identifying products which are being transported, priced, sorted, etc. Such symbols have the advantage that they may be read by any of a variety of bar code readers at high speed and with high accuracy. Provided only that the reader is able to read and decode data in the form in which it is encoded in the symbol, it is able to read that data at a speed and with an accuracy which greatly exceeds that of any human reader. This not only increases the productivity of the humans who work with the readers, it also improves the quality of the work environment by eliminating one of the most tedious and repetitive tasks performed therein.
With the increased acceptance that resulted from its early successes, the use of bar codes and bar code readers has expanded into an ever widening range of applications, including many for which they were not originally designed. Many of these applications call for the reading of bar code symbols which encode more data than is practicable with early one-dimensional (1D) bar code symbologies. As a result, new 1D symbologies were developed which increased the density with which data may be encoded. Examples of the resulting symbologies now include Code 128 and Code 49, among many others. An example of a symbology which includes a plurality of rows of encoded data, commonly known as a "1D-stacked" symbology, is described in U.S. Pat. No. 4,794,239 (Allais).
As the use of bar code symbols and bar code readers continues to expand, all of the above mentioned 1D symbologies eventually become unable to encode the amounts of data required, and in the space available. As a result, two dimensional (2D) matrix symbologies have been developed which are capable of storing a quantity of data that is substantially larger than is possible with 1D symbologies of any reasonable size. Examples of 2D symbologles are described in U.S. Pat. No. 4,634,850 (Pierce et al), U.S. Pat. No. 4,924,078 (Sant' Anselmo et al), U.S. Pat. No. 4,488,679 (Bockholt et al) and U.S. Pat. No. 5,329,107 (Priddy et al). These 2D matrix codes have the added advantage of being readable when scanned in any orientation.
In spite of the advantage of greatly increased data densities, 2D bar code symbologies have not come into widespread use. This is because many of the 2D symbologies which have been developed to date present reading and/or decoding difficulties which limit the speed and/or accuracy with which data may be read therefrom. One of these difficulties is the maintenance of a satisfactory level of illumination over the 2D image field that contains the bar code symbol. Another is that the accuracy with which a 2D symbol may be read is sensitive to the orientation of the symbol at the time it is read. Moreover, these two difficulties interact in a way that compounds the difficulties of either acting alone. A symbol that is tilted in relation to the plane in which it is to be read, for example, will not be uniformly illuminated by an illumination system designed to illuminate the symbol from a direction perpendicular to that plane. The tilting of the symbol also has the effect of foreshortening the image of the symbol in one or more planes which cannot be identified in advance. The 2D symbol may also have any one of many different angular orientations with respect to the axis along which it is illuminated. Other factors, such as the curvature of the surface on which the symbol appears, also have an effect.
Prior to the present invention, many attempts have been made to devise 2D symbologies which are relatively insensitive to the above-mentioned effects and/or to develop 2D bar code readers which are sophisticated enough to correct for them. An example of an attempt to make use of both of these approaches to achieve a high degree of accuracy is described in U.S. Pat. No. 4,896,029 (Chandler et al), which is hereby expressly incorporated herein by reference. While approaches such as that described in the latter patent achieve a certain measure of success, they require the utilization of such sophisticated software that a read operation cannot be performed by available microprocessors at a reasonable cost within a reasonable amount of time. Thus a need exists for a 2D symbology that allows data to be read accurately by microprocessors in a relatively short time and at a reasonable cost.